#ifndef _MIB_H_
#define _MIB_H_

#include "Types.h"
#include "config.h"
#include "storage.h"

struct DCPowerTable
{
    S32_T   DCPowerIndex;
    S16_T   DCPowerVoltage;
    S8_T    DCPowerName[14];
};

struct oaPumpTable
{
    S32_T   oaPumpIndex;
    S16_T   oaPumpBIAS;
    S16_T   oaPumpTEC;
    S16_T   oaPumpTemp;
    S16_T   Placeholderf;
};

struct oaDeviceGroup
{
    struct oid oaVendorOID;
    S16_T   oaVendorOIDlen;
    S32_T   oaOutputOpticalPower;
    S32_T   oaInputOpticalPower;
    struct oaPumpTable *OaPumpEntry;
    S32_T   oaNumberDCPowerSupply;
    S32_T   oaDCPowerSupplyMode;
    struct DCPowerTable *oaDCPowerEntry;
    S32_T   oaDCPowerSupplyAStatus;
    S32_T   oaDCPowerSupplyBStatus;

	S32_T	wave_length;
};



struct dorRxInputTable
{
	S32_T	dorRxInSlotIndex;
	S32_T	dorInputIndex;
	S32_T	dorInputPower;
	S32_T	dorInputWavelengthControl;
	S32_T 	dorInputStatus;
};

struct dorRxOutputTable
{
	S32_T 	dorRxOutSlotIndex;
	S32_T	dorOutputIndex;
	S32_T	dorOutputControl;
	S32_T	dorOutputGainType;
	S32_T	dorOutputLevel;
	S32_T 	dorOutputRFPadlevel;
	S32_T	dorOutputRFlevelatt;
	S32_T	dorConfigurationOutputRFlevelatt;
	S8_T	dorOutputRFName[32];
};

struct dorDCPowerTable
{
	S32_T	dorDCPowerIndex;
	S32_T	dorDCPowerVoltage;
	S32_T	dorDCPowerCurrent;
	S8_T	dorDCPowerName[32];
};

struct dorStatusTable
{
	S32_T 	dorStatusSlotIndex;
	S32_T	dorRECmode;
	S32_T	dorRECchannel;
};

struct dorDeviceGroup
{
	S8_T	dorVendorOID[32];
	S32_T	dorRxInputNumber;
	struct dorRxInputTable *dorRxInputEntry;
	S32_T	dorRxOutputNumber;
	struct dorRxOutputTable *dorRxOutputEntry;
	S32_T	dorNumberDCPowerSupply;
	S32_T	dorDCPowerSupplyMode;

	struct dorDCPowerTable *dorDCPowerEntry;
	/* user-defined */
	S32_T	dorStatusNumber;
	struct dorStatusTable *dorStatusEntry;
};



#endif /* _MIB_H */
